/**
 * 项目常量统一管理
 *
 * 存储键命名规范：
 * - 使用小写 + 冒号分隔 + 名称空间
 * - 格式：myapp:user:token
 * - 便于清理和避免冲突
 * - 当需要版本升级、兼容旧数据，可在 key 中加入版本如 myapp:v2:user:token。
 */
// 🏷️ 应用前缀常量
export const APP_PREFIX = "yaa";

export const ROLE_ROOT = "ROOT"; // 超级管理员角色

// 📦 存储键统一管理
export const STORAGE_KEYS = {
  // 🔐 用户认证相关
  ACCESS_TOKEN: `${APP_PREFIX}:auth:access_token`, // JWT 访问令牌，用于 API 请求认证
  REFRESH_TOKEN: `${APP_PREFIX}:auth:refresh_token`, // JWT 刷新令牌，用于获取新的访问令牌
  REMEMBER_ME: `${APP_PREFIX}:auth:remember_me`, // 记住登录状态，控制登录持久化
  // 🎨 系统设置相关
  SHOW_TAGS_VIEW: `${APP_PREFIX}:ui:show_tags_view`, // 是否显示标签页视图
  SHOW_APP_LOGO: `${APP_PREFIX}:ui:show_app_logo`, // 是否显示应用 Logo
  SHOW_WATERMARK: `${APP_PREFIX}:ui:show_watermark`, // 是否显示水印
  LAYOUT: `${APP_PREFIX}:ui:layout`, // 布局模式：vertical(垂直) | horizontal(水平) | mix(混合)
  SIDEBAR_COLOR_SCHEME: `${APP_PREFIX}:ui:sidebar_color_scheme`, // 侧边栏颜色方案：light(浅色) | dark(深色)
  THEME: `${APP_PREFIX}:ui:theme`, // 主题模式：light(浅色) | dark(深色) | auto(自动)
  // 📱 应用状态相关
  DEVICE: `${APP_PREFIX}:app:device`, // 设备类型：desktop(桌面) | mobile(移动端) | tablet(平板)
  SIZE: `${APP_PREFIX}:app:size`, // 屏幕尺寸：large(大) | medium(中) | small(小)
  SIDEBAR_STATUS: `${APP_PREFIX}:app:sidebar_status`, // 侧边栏状态：opened(展开) | closed(收起)
}

// 🔐 认证相关键集合
// 包含所有与用户认证、授权相关的存储键
export const AUTH_KEYS = {
  ACCESS_TOKEN: STORAGE_KEYS.ACCESS_TOKEN, // JWT 访问令牌
  REFRESH_TOKEN: STORAGE_KEYS.REFRESH_TOKEN, // JWT 刷新令牌
  REMEMBER_ME: STORAGE_KEYS.REMEMBER_ME, // 记住登录状态
};
